#ifndef __RANDOM_TREE_GENERATOR_H__
#define __RANDOM_TREE_GENERATOR_H__

#include <iostream>

#include <vector>
#include "Tree.h"

#include <time.h>

using namespace std;

class RTG
{
private:
	vector<Tree*> TreeVector;//every node is connected to some integer.
							 //it is from here we choose a random node to connect a new child to
	Tree* Root;//the root of our randomly chosen node
	int rangeLimit;//every random tree has at most rangeLimit nodes
public:
	//create a random tree with at most rangeLimit nodes
	//labels are numbers so they start at 0 and the top limit is 32767
	RTG(int rangeLimit1 = 100);
	~RTG() {TreeVector.~vector(); }
	void Generate();//generates a new random tree.
	void Clear();//clear the previous random tree.
	Tree* getRoot();//get the root of the current tree.

	//int to string
	string ItoS(int num);
};

#endif